<?php

App::uses('Utils', 'Libs');
App::uses('UsuariosUtils','Libs');
App::uses('EmailUtils','Libs');
App::uses('UsuariosDao','Model');


class LoginController extends AppController {

	var $utils;
	var $usuariosUtils;
	var $usuariosDao;
	var $components = array('Session');
	
	// __autoload clases
	function beforeFilter() {
		parent::beforeFilter();
		$this->layout = 'login';
		$this->utils = new Utils();
		$this->usuariosUtils = new UsuariosUtils();
		$this->usuariosDao = new UsuariosDao();
	}
	
	//formulario de acceso
	public function index() { } 

	//cierra sesion
	function desconectar(){
		$this->Session->write('logged',false);
		$this->redireccion('login');
	}
	
	//recibe datos formulario de acceso y si son correctos hace login
	function inicio_sesion(){
		$this->autoRender = false;
		$this->utils->comprobar_peticion_ajax(); //comprobar peticion ajax
		$usuario = $this->usuariosUtils->comprobarExisteUsuario(); // comprueba si el usuario recibido existe		
		$this->Session->write("logged",true); //escribe en la sesion logeado true, falta añadir algo de seguridad? datos usuario
		$this->Session->write("id_usuari",$usuario->id);
		$this->Session->write("nom_usuari",$usuario->usuari);
		$this->Session->write("mail_usuari",$usuario->mail);
		echo json_encode(true); //devuelve true despues de las comprobaciones
	}

	//comprueba usuario ha hecho sesion
	
	function comprobar_login(){
		$logged = $this->Session->read('logged');
		if($logged === false || empty($logged) || $logged !== true){
			$this->redireccion('login/form_acceso');
		}
	}
	
	//vista formulario para cambiar la contraseña
	function form_canvi_contrasenya(){ }
	
	//vista formulario donde se escribe la nueva contraseña
	function recuperar_contrasenya($mail,$contraseña){
		if(empty($mail)){ echo("incorrecto"); exit(); }
		if(empty($contraseña)){ echo("incorrecto"); exit(); }
		
		$pass = $this->usuariosDao->getContrasenyaPerMail($mail); //recupero contrasenya para comparar con la recibida
		if($pass != $contraseña){
			echo("incorrecto");
			exit();
		}
		$this->set("mail",$mail);
		
	}
			
	//funcion que enviara un mail con una ruta para recuperar la contraseña
	function mail_recuperar_contrasenya(){
		$this->autoRender = false;
		$usuariosDao = new UsuariosDao();
		$emailUtils = new EmailUtils();
		
		$mail = $_POST['m'];
		$pass = $usuariosDao->getContrasenyaPerMail($mail);
		$ruta = 'login/recuperar_contrasenya/'.$mail.'/'.$pass;
		
		$enviar_email = $emailUtils->mail_nova_contrasenya($mail,$ruta);

		echo json_encode($ruta);

	}
	
	function test(){
		$info = $this->testDao->prueba();
		$this->set('test',$info);
	}

	//crea contraseña que deseas no subir
	function crear_contraseña($contraseña){
		$this->autoRender = false;
		$contraseña = hash('sha512',$contraseña);
		$salt = hash('sha512', 'f0rm4c10__fcf');
		$pass_bd = hash('sha512',$contraseña.$salt);
		echo($pass_bd);
	}
	

}


?>